package com.ishare.admin.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ishare.common.entity.po.SysMenu;
import com.ishare.common.entity.vo.MenuTreeDataVO;
import com.ishare.common.entity.vo.MenuVO;

import java.util.List;


/**
 * 菜单管理
 * @author Mark sunlightcs@gmail.com
 */
public interface SysMenuService extends IService<SysMenu> {

    /**
     * 根据父菜单，查询子菜单
     * @param parentId 父菜单ID
     * @param menuIdList  用户菜单ID
     */
    List<SysMenu> queryListParentId(Long parentId, List<Long> menuIdList);

    /**
     * 根据父菜单，查询子菜单
     * @param parentId 父菜单ID
     */
    List<SysMenu> queryListParentId(Long parentId);

    /**
     * 获取用户菜单列表
     */
    List<MenuVO> getUserMenuList(Long userId);

    /**
     * 删除
     */
    void delete(Long menuId);

    /**
     * 获取用户所有的菜单
     * @param userId 用户id
     * @return
     */
    List<MenuVO> queryUserAllMenu(Long userId);

    List<SysMenu> selectList();

    /**
     * 树形菜单
     * @param userId 用户id
     * @return MenuTreeDataVO
     */
    List<MenuTreeDataVO> select(Long userId);

    void deleteBatch(Long[] ids);
}
